Stochastics Confluences 4 in 1Description of the Pine Script:
This script plots the Full Stochastic indicator for four different time periods, and highlights conditions where potential buy or sell signals can be identified. The Stochastic indicator measures the position of the current closing price relative to the range of high and low prices over a defined period, helping traders identify overbought and oversold conditions.
Key Features:
Stochastic Calculation for 4 Different Periods:
The script calculates the Stochastic for four separate lookback periods: 9, 14, 40, and 60 bars.
Each Stochastic value is smoothed by a Simple Moving Average (SMA) to reduce noise and provide a clearer signal.
Visual Representation:
It plots each Stochastic value on the chart using different colors, allowing the user to see how the different periods of the indicator behave relative to each other.
Horizontal lines are drawn at 80 (Upper Bound) and 20 (Lower Bound), commonly used to identify overbought and oversold regions.
Highlighting Buy and Sell Conditions:
Green Highlight (Potential Buy Signal):
When all four Stochastic values (for the four different periods) are below 20, this suggests that the asset is in an oversold condition across multiple timeframes. The green background highlight appears when the Stochastic lines converge below 20, indicating a potential buy signal, as the price may be preparing to move upward from an oversold state.
Red Highlight (Potential Sell Signal):
When all four Stochastic values are above 80, the asset is in an overbought condition across multiple timeframes. The red background highlight appears when the Stochastic lines converge above 80, indicating a potential sell signal, as the price may soon reverse downward from an overbought state.
How to Interpret the Signals:
Buy Signals (Green Highlight):
When the chart is highlighted in green, it means the Stochastic indicators for all four periods are below 20, signaling that the asset is oversold and may be nearing a potential upward reversal. This condition suggests a possible buying opportunity, especially when other indicators confirm the potential for an upward trend.
Sell Signals (Red Highlight):
When the chart is highlighted in red, it indicates that the Stochastic indicators for all four periods are above 80, meaning the asset is overbought. This condition signals a possible downward reversal, suggesting a potential selling opportunity if the price begins to show signs of weakness.
By using this script, traders can visually identify periods of strong confluence across different timeframes when the Stochastic indicators are in extreme oversold or overbought conditions, which are traditionally seen as strong buy or sell signals.
This approach helps filter out weaker signals and focuses on moments when all timeframes align, increasing the probability of a successful trade.
Cari dalam skrip untuk "THE SCRIPT"
HTF LQ SweepThe following script recognises QL sweeps in the desired time frame with alarm function!
Theory:
There is liquidity above highs and below lows. If this is tapped and the market reacts strongly immediately, the probability of a reversal is greatly increased! In the chart, this is defined in such a way that a candle has its wicks BELOW the old low, but the close is ABOVE the old low. the same applies to the high, of course!
In such a case we have an "LQ Sweep"
How does the script work?
Williams 3 fractals are used as a basis. These are meaningful as lows or highs. Whenever a fractal is created, the price level is saved.
This means that not only the last fractal is relevant, but all historical fractals as long as they have not been reached!
If a candle reaches the level, but shows a rejection and closes within the level again, we have our "LQ Sweep" setup.
In the script you can select the timeframe in which the market has to be analysed. When the QL sweep occurs, an alert is triggered. This saves a lot of time because you can analyse different markets in different timeframes at the same time!
Each QL Sweep is marked in the chart when we are in the selected timeframe. These can also be deactivated so that only the last sweep is displayed.
Benefits for the trader:
An LQ sweep is a nice confirmation for a reversal.
If we have such an LQ sweep, we can wait in the lower timeframe for further confirmation, such as a structural break, to position our entries there.
The alarm function saves us a lot of time and we only go to the chart when a potential setup has been created.
You can set different time frames in the script: The selected time frame is then scanned and sends a signal when the event occurs.
---Advanced Harmonic Pattern Scanner v5Summary of the Script:
All Patterns Covered: The script includes all major harmonic patterns: Butterfly, Gartley, Crab, Bat, Cypher, and Three Drives. Both bullish and bearish versions are detected.
ZigZag Swings: The zigzag logic helps find swing points (X, A, B, C, D) which are essential for forming these patterns. You can adjust the zigzagDepth parameter to fine-tune how sensitive the pattern detection is to price swings.
Fibonacci Levels: Each pattern uses specific Fibonacci retracement or extension levels to identify potential patterns, and the script compares price movements to these ratios.
Visual Aid: It uses plotshape() to display detected patterns on the chart and optional line.new() functions to connect the swing points for a better visual representation of the patterns.
How to Customize:
Timeframe: You can run this script on different timeframes by changing the chart on TradingView (1 min, 1 hour, 1 day, etc.).
ZigZag Sensitivity: Adjust the zigzagDepth to refine how frequently swing points are detected. Larger numbers will reduce sensitivity and show fewer but more pronounced patterns.
Pattern Refinement: Modify Fibonacci levels to experiment with custom harmonic patterns or adjust thresholds for the existing ones.
This code is an advanced version and scans the market comprehensively for all major harmonic patterns. Let me know if you need further modifications or explanations!
Multi-timeframe 24 moving averages + BB+SAR+Supertrend+VWAP █ OVERVIEW
The script allows to display up to 24 moving averages ("MA"'s) across 5 timeframes plus two bands (Bollinger Bands or Supertrend or Parabolic SAR or VWAP bands) each from its own timeframe.
The main difference of this script from many similar ones is the flexibility of its settings:
- Bulk enable/disable and/or change properties of several MAs at once.
- Save 3 of your frequently used templates as presets using CSV text configurations.
█ HOW TO USE
Some use examples:
In order to "show 31, 50, 200 EMAs and 20, 100, 200 SMAs for each of 1H, 4H, D, W, M timeframes using blue for short MA, yellow for mid MA and red for long MA" use the settings as shown on a screenshot below.
In order to "Show a band of chart timeframe MA's of lengths 5, 8, 13, 21, 34, 55, 100 and 200 plus some 1H, 4H, D and W MAs. Be able to quickly switch off the band of chart tf's MAs. For chart timeframe MA's only show labels for 21, 100 and 200 EMAs". You can set TF1 and TF2 to chart's TF and set you fib MAs there and configure fixed higher timeframe MAs using TF3, TF4 and TF5 (e.g. using 1H, D and W timeframes and using 1H 800 in place of 4H 200 MA). However, quicker way may be using CSV - the syntax is very simple and intuitive, see Preset 2 as it comes in the script. You can easily switch chart tf's band of MAs by toggling on/off your chart timeframe TF's (in our example, TF1 and TF2).
The settings are either obvious or explained in tooltips.
Note 1: When using group settings and CSV presets do not forget that individual setting affected will no have any effect. So, if some setting does not work, check whether it is overridden with some group setting or a CSV preset.
Note 2: Sometimes you can notice parts of MA's hanging in the air, not lasting up to the last bar. This is not a bug as explained on this screenshot:
█ FOR DEVELOPERS
The script is a use case of my CSVParser library, which in turn uses Autotable library, both of which I hope will be quite helpful. Autotable is so powerful and comprehensive that you will hardly ever wish to use normal table functions again for complex tables.
The indicator was inspired by Pablo Limonetti's url=https://www.tradingview.com/script/nFs56VUZ/]Multi Timeframe Moving Averages and Raging @RagingRocketBull's # Multi SMA EMA WMA HMA BB (5x8 MAs Bollinger Bands) MAX MTF - RRB
HTFBands█ OVERVIEW
Contains type and methods for drawing higher-timeframe bands of several types:
Bollinger bands
Parabolic SAR
Supertrend
VWAP
By copy pasting ready made code sections to your script you can add as many multi-timeframe bands as necessary.
█ HOW TO USE
Please see instructions in the code. (Important: first fold all sections of the script: press Cmd + K then Cmd + - (for Windows Ctrl + K then Ctrl + -)
█ FULL LIST OF FUNCTIONS AND PARAMETERS
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float"
`length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
pine_supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float"
`atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when
reversing trend, or to use the close price. Optional. Default is false.
Returns: ( ) A tuple of the superTrend value and trend direction.
method getDefaultBandQ1(bandType)
For a given BandType returns its default Q1
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method getDefaultBandQ2(bandType)
For a given BandType returns its default Q2
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method getDefaultBandQ3(bandType)
For a given BandType returns its default Q3
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method init(this, bandsType, q1, q2, q3, vwapAnchor)
Initiates RsParamsBands for each band (used in htfUpdate() withi req.sec())
Namespace types: RsParamsBands
Parameters:
this (RsParamsBands)
bandsType (series BandTypes)
q1 (float) : (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
q2 (float) : (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
q3 (float) : (float) Depending on type: BB - not used, SAR - AF max, ST - not used
vwapAnchor (series VwapAnchors) : (VwapAnchors) VWAP ahcnor
method init(this, bandsType, tf, showRecentBars, lblsShow, lblsMaxLabels, lblSize, lnMidClr, lnUpClr, lnLoClr, fill, fillClr, lnWidth, lnSmoothen)
Initialises object with params (incl. input). Creates arrays if any.
Namespace types: HtfBands
Parameters:
this (HtfBands)
bandsType (series BandTypes) : (BandTypes) Just used to enable/disable - if BandTypes.none then disable )
tf (string) : (string) Timeframe
showRecentBars (int) : (int) Only show over this number of recent bars
lblsShow (bool) : (bool) Show labels
lblsMaxLabels (int) : (int) Max labels to show
lblSize (string) : (string) Size of the labels
lnMidClr (color) : (color) Middle band color
lnUpClr (color) : (color) Upper band color
lnLoClr (color) : (color) Lower band color
fill (bool)
fillClr (color) : (color) Fill color
lnWidth (int) : (int) Line width
lnSmoothen (bool) : (bool) Smoothen the bands
method htfUpdateTuple(rsPrms, repaint)
(HTF) Calculates Bands within request.security(). Returns tuple . If any or all of the bands are not available returns na as their value.
Namespace types: RsParamsBands
Parameters:
rsPrms (RsParamsBands) : (RsParamsBands) Parameters of the band.
repaint (bool) : (bool) If true does not update on realtime bars.
Returns: A tuple (corresponds to fields in RsReturnBands)
method importRsRetTuple(this, htfBi, mid, up, lo, dir)
Imports a tuple returned from req.sec() into an HtfBands object
Namespace types: HtfBands
Parameters:
this (HtfBands) : (HtfBands) Object to import to
htfBi (int) : (float) Higher timeframe's bar index (Default = na)
mid (float)
up (float) : (float) Value of upper band (Default = na)
lo (float) : (float) Value of lower band (Default = na)
dir (int) : (int) Direction (for bands like Parabolic SAR) (Default = na)
method addUpdDrawings(this, rsPrms)
Draws band's labels
Namespace types: HtfBands
Parameters:
this (HtfBands)
rsPrms (RsParamsBands)
method update(this)
Sets band's values to na on intrabars if `smoothen` is set.
Namespace types: HtfBands
Parameters:
this (HtfBands)
method newRsParamsBands(this)
A wraper for RsParamsBands.new()
Namespace types: LO_A
Parameters:
this (LO_A)
method newHtfBands(this)
A wraper for HtfBands.new()
Namespace types: LO_B
Parameters:
this (LO_B)
RsParamsBands
Used to pass bands' params to req.sec()
Fields:
bandsType (series BandTypes) : (enum BandTypes) Type of the band (BB, SAR etc.)
q1 (series float) : (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
q2 (series float) : (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
q3 (series float) : (float) Depending on type: BB - not used, SAR - AF max, ST - not used
vwapAnchor (series VwapAnchors)
RsReturnBands
Used to return bands' data from req.sec(). Params of the bands are in RsParamsBands
Fields:
htfBi (series float) : (float) Higher timeframe's bar index (Default = na)
upBand (series float) : (float) Value of upper band (Default = na)
loBand (series float) : (float) Value of lower band (Default = na)
midBand (series float) : (float) Value of middle band (Default = na)
dir (series int) : (float) Direction (for bands like Parabolic SAR) (Default = na)
BandsDrawing
Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
Fields:
lnMidClr (series color) : (color) Middle band color
lnLoClr (series color) : (color) Lower band color
lnUpClr (series color) : (color) Upper band color
fillUpClr (series color)
fillLoClr (series color)
lnWidth (series int) : (int) Line width
lnSmoothen (series bool) : (bool) Smoothen the bands
showHistory (series bool) : (bool) If true show bands lines, otherwise only current level
showRecentBars (series int) : (int) Only show over this number of recent bars
arLbl (array) : (label Labels
lblsMaxLabels (series int) : (int) Max labels to show
lblsShow (series bool) : (bool) Show labels
lblSize (series string) : (string) Size of the labels
HtfBands
Calcs and draws HTF bands
Fields:
rsRet (RsReturnBands) : (RsReturnBands) Bands' values
rsRetNaObj (RsReturnBands) : (RsReturnBands) Dummy na obj for returning from request.security()
rsPrms (RsParamsBands) : (RsParamsBands) Band parameters (for htfUpdate() called in req.sec() )
drw (BandsDrawing) : (BandsDrawing) Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
enabled (series bool) : (bool) Toggles bands on/off
tf (series string) : (string) Timeframe
LO_A
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
LO_B
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
Pink's Daily SMA Script🚗 This script provides a customizable overlay of seven simple moving averages (SMAs) on the chart. Users can control the display of each SMA by toggling them on or off. The lengths of these SMAs are adjustable, allowing for tailored analysis based on individual preferences.
📊 The script calculates daily SMA values using the request.security() function and plots them as horizontal lines on the chart. These SMAs are updated once per day, typically at the start of the pre-market session (9:00 AM in the "America/New_York" timezone). The script resets the SMA values at the start of each new day, ensuring fresh data for daily analysis.
🕒 In addition to the SMAs, the script includes an optional feature that highlights specific time ranges on the chart: from 11:00 AM to 11:05 AM and from 1:00 PM to 1:30 PM (based on the "America/New_York" timezone). Users can toggle these background highlights on or off, providing visual cues for key times during the trading day. The 11:00 AM window is highlighted in gray, while the 1:00 PM window is highlighted in blue.
🔖 The SMAs are labeled on the right side of the chart, with only one label visible at a time for each SMA. These labels display the length of the respective SMA, and their colors match the lines drawn on the chart, helping to distinguish between the different SMAs.
Special thanks to Pinks333 (www.tradingview.com)
Who provided the logic for the script and was willing to share her logic and open source the script.
Dynamic Jurik RSX w/ Fisher Transform█ Introduction
The Dynamic Jurik RSX with Fisher Transform is a powerful and adaptive momentum indicator designed for traders who seek a non-laggy view of price movements. This script is based on the classic Jurik RSX (Relative Strength Index). It also includes features such as the dynamic overbought and oversold limits, the Inverse Fisher Transform, trend display, slope calculations, and the ability to color extremes for better clarity.
█ Key Features:
• RSX: The Relative Strength Index (RSX) in this script is based on Jurik’s RSX, which is smoother than the traditional RSI and aims to reduce noise and lag. This script calculates the RSX using an exponential smoothing technique and adaptive adjustments.
• Inverse Fisher Transform: This script can optionally apply the Inverse Fisher Transform to the RSX, which helps to normalize the RSX values, compressing them between -1 and 1. The inverse transformation makes it easier to spot extreme values (overbought and oversold conditions) by enhancing the visual clarity of those extremes. It also smooths the curve over a user-defined period in hopes of providing a more consistent signal.
• Dynamic Limits: The dynamic overbought and oversold limits are calculated based on the RSX's recent high and low values. The limits adjust dynamically depending on market conditions, making them more relevant to current price action.
• Slope Display: The slope of the RSX is calculated as the rate of change between the current and previous RSX value. The slope is displayed as dots when the slope exceeds the threshold designated by the user, providing visual cues for momentum shifts.
• Trend Coloring: Optionally, the user can also enable a trend-based display. It is simply based on current value of RSX versus the previous one. If RSX is rising then the trend is bullish, if not, then the trend is bearish.
• Coloring Extremes: Users can configure the RSX to color the chart when prices enter extreme conditions, such as overbought or oversold zones, providing visual cues for market reversals.
█ Attached Chart Notes:
• Top Panel: Enabled dynamic limits, Trend display, standard Jurik RSX with 20 lookback period, and Slope display.
• Middle Panel: Enabled dynamic limits, Extremes display, and standard Jurik RSX with 20 lookback period.
• Bottom Panel: Enabled dynamic limits, Trend display, Inverse Fisher Transform with 14 lookback period and 9 smoothing period. and Slope display.
█ Credits:
Special thanks to Everget for providing the original script. The script was also slightly modified based on updates from outside sources.
█ Disclaimer:
This script is for educational purposes only and should not be considered financial advice. Always conduct your own research and consult a professional before making any trading decisions.
Rally SpotterTitle: Long-Side Rally Detector – Quickly Spot Significant Upward Movements for In-Depth Analysis
Description:
Introducing the Long-Side Rally Detector or Rally Spotter, a powerful Pine Script designed to help traders and investors quickly identify areas on a chart where stocks have made significant upward rallies. This tool is perfect for anyone looking to easily locate these areas and conduct a deep study of the chart to uncover the underlying dynamics of these movements.
Purpose:
The primary goal of the Long-Side Rally Detector is to facilitate the identification of significant rallies, allowing you to delve deeper into the chart and gain valuable insights into market behavior. Once such an area is identified, you can perform a detailed analysis to understand:
When the Move Started: Pinpoint the exact moment the rally began.
How the Move Started: Analyze the initial triggers and catalysts for the upward movement.
The Chart Structure Before the Move: Examine the technical patterns and formations preceding the rally.
How the Volume Looked Like: Assess the volume dynamics and determine whether there was strong buying interest.
What Were the EPS, Sales Figures Before and After the Move: Investigate the fundamental metrics, such as earnings per share (EPS) and sales, to see how they align with the price movement.
Features:
Customizable Percentage Move: Set your preferred percentage increase to detect rallies, with a default value of 50%. This flexibility allows you to tailor the tool to various market conditions and trading strategies.
Adjustable Lookback Period: Define the lookback period in months (default is 3 months) to capture significant trends. The script intelligently adjusts the lookback period based on your chart's timeframe, whether daily, weekly, or monthly.
Focused on Upward Movements: Specifically engineered to identify long-side rallies, ensuring you capture only the most promising upward trends in stock prices.
Visual Highlighting: The script highlights areas on the chart where the stock has made the specified upward move, providing a clear and intuitive visual cue for analysis.
How to Use:
Apply the Script: Add the Long-Side Rally Detector to your TradingView chart.
Customize Settings: Use the input panel to adjust the percentage move and lookback period to fit your analysis needs.
Analyze with Confidence: Utilize the visual cues to identify significant upward movements and make informed trading decisions.
Ideal For:
Traders seeking to capitalize on momentum and trend-following strategies.
Investors looking to identify potential breakout opportunities in their portfolios.
Analysts interested in enhancing their technical analysis toolkit with a precise and customizable indicator.
Unlock the potential of your trading strategy with the Long-Side Rally Detector and stay ahead of the market by spotting key upward movements with ease! Conduct in-depth studies of identified areas to gain a comprehensive understanding of market dynamics.
nPOC Levels by Tyler### Explanation of the Pine Script
This Pine Script identifies and displays weekly naked Points of Control (nPOCs) on a TradingView chart. An nPOC represents a Point of Control (POC) from a previous week that has not been revisited by price action in subsequent weeks. These nPOCs are extended to the right as horizontal lines, indicating potential support or resistance levels.
#### Script Overview
1. **Indicator Declaration:**
```pinescript
//@version=5
indicator("Weekly nPOCs", overlay=true)
```
- The script is defined as a version 5 Pine Script.
- The `indicator` function sets the script's name ("Weekly nPOCs") and specifies that the indicator should be overlaid on the price chart (`overlay=true`).
2. **Function to Calculate POC:**
```pinescript
f_poc(_hl2, _vol) =>
var float vol_profile = na
if (na(vol_profile))
vol_profile := array.new_float(100, 0.0)
_bin_size = (high - low) / 100
for i = 0 to 99
if _hl2 >= low + i * _bin_size and _hl2 < low + (i + 1) * _bin_size
array.set(vol_profile, i, array.get(vol_profile, i) + _vol)
max_volume = array.max(vol_profile)
poc_index = array.indexof(vol_profile, max_volume)
poc_price = low + poc_index * _bin_size + _bin_size / 2
poc_price
```
- The function `f_poc` calculates the Point of Control (POC) for a given period.
- It takes two parameters: `_hl2` (the average of the high and low prices) and `_vol` (volume).
- A volume profile array (`vol_profile`) is initialized to store volume data across different price bins.
- The price range between the high and low is divided into 100 bins (`_bin_size`).
- The function iterates over each bin, accumulating the volumes for prices within each bin.
- The bin with the maximum volume is identified as the POC (`poc_price`).
3. **Variables to Store Weekly Data:**
```pinescript
var float poc = na
var float prev_poc = na
var line poc_lines = na
if na(poc_lines)
poc_lines := array.new_line(0)
```
- `poc` stores the current week's POC.
- `prev_poc` stores the previous week's POC.
- `poc_lines` is an array to store lines representing nPOCs. The array is initialized if it is `na` (not initialized).
4. **Calculate Weekly POC:**
```pinescript
is_new_week = ta.change(time('W')) != 0
if (is_new_week)
prev_poc := poc
poc := f_poc(hl2, volume)
if not na(prev_poc)
line new_poc_line = line.new(x1=bar_index, y1=prev_poc, x2=bar_index + 100, y2=prev_poc, color=color.red, width=2)
label.new(x=bar_index, y=prev_poc, text="nPOC", style=label.style_label_down, color=color.red, textcolor=color.white)
array.push(poc_lines, new_poc_line)
```
- `is_new_week` checks if the current bar is the start of a new week using the `ta.change(time('W'))` function.
- If it's a new week, the previous week's POC is stored in `prev_poc`, and the current week's POC is calculated using `f_poc`.
- If `prev_poc` is not `na`, a new line (`new_poc_line`) representing the nPOC is created, extending it to the right (for 100 bars).
- A label is created at the `prev_poc` level, marking it as "nPOC".
- The new line is added to the `poc_lines` array.
5. **Remove Old Lines:**
```pinescript
if array.size(poc_lines) > 52
line.delete(array.shift(poc_lines))
```
- This section ensures that only the last 52 weeks of nPOCs are kept to avoid cluttering the chart.
- If the `poc_lines` array contains more than 52 lines, the oldest line is deleted using `array.shift`.
6. **Plot the Current Week's POC as a Reference:**
```pinescript
plot(poc, title="Current Weekly POC", color=color.blue, linewidth=2, style=plot.style_line)
```
- The current week's POC is plotted as a blue line on the chart for reference.
#### Summary
This script calculates and identifies weekly Points of Control (POCs) and marks them as nPOCs if they remain untouched by subsequent price action. These nPOCs are displayed as horizontal lines extending to the right, providing traders with potential support or resistance levels. The script also manages the number of lines plotted to maintain a clear and uncluttered chart.
Futures Settlement [NeoButane]Traders use settlement prices as both support/resistance and as a target for price to trend towards. The intention of this script is to provide possible entry and exit levels for swing and scalp trades by drawing horizontal lines of true settlement prices provided by TradingView.
The settlement price, which is calculated daily, is used to determine the profit/loss of a trader's futures position. Prior to the daily close, price settlement of futures contracts is performed by taking the average of its traded price during a specified period of time.
Usage
The settlement prices, shown as horizontal lines, serve as support or resistance for entry or exit. There are hundreds of ways to combine this with favorite indicators, or it can be used as levels for pure price action traders.
See how settlement price levels can be used in confluence with oscillators.
Configuration
Toggles to show each settlement. Reprint shows prior weeks or months after they've ended. Back-adjusted futures, which affect expired futures price history on continuous futures charts, should only be enabled on non-standard charts to match the user's chart settings.
What this script does
This script plots the daily, weekly, and monthly settlements for futures, including an average for the two most recent weekly or monthly settlements. The weekly settlement uses the last day of the week's daily settlement and the monthly settlement uses the last day of the month's daily settlement. For symbols that do not have settlement prices, which will be almost if not all symbols that are not futures, the settlement price instead becomes price at the last second before the daily/weekly/monthly close. In those cases, this script becomes a tool for automatically plotting daily/weekly/monthly closes.
See below for two different bitcoin charts. The chart on top is a non-futures chart and a futures chart is at the bottom. Note that CME bitcoin futures settle 4 hours (1500 CST) before bitcoin's daily close (UTC).
How this script works
TradingView has a built-in ability to display daily settlements instead of the actual daily close. This can be enabled in chart settings for futures on the daily timeframe and there is an argument for Pine Script to do so as well. Because settlement times are different for multiple products during the day, the script uses the settlement price from daily timeframe, which is guaranteed to be correct because TradingView is wonderful. I accidentally found the undocumented backadjustment and settlement_at_close when I was trying to use ticker.inherit() to create a symbol with its daily close time changed to another symbol's, which I still haven't figured out. TradingView has since added documentation for both of them, but there's still an ambiguous 'etc.' in the description of ticker.inherit() so maybe there's more secret arguments...
The script is able to be used on non-standard charts by using ticker.standard(), but back-adjustment will need to be changed by input to match chart settings.
References
Investopedia explanation of settlement price.
www.investopedia.com
Settlement prices for ES.
www.cmegroup.com
CME summary of settlement price.
www.cmegroup.com
How to enable settlement price as close for daily intervals in TradingView. This does not affect the use of this script.
www.tradingview.com
About back-adjustment for continuous futures charts in TradingView.
www.tradingview.com
Gaussian Weighted Moving Average with Forecast [CHE]Presentation for TradingView: Gaussian Weighted Moving Average with Forecast
Introduction
Welcome to our presentation on the "Gaussian Weighted Moving Average with Forecast" (GWMA). This script, written in Pine Script™, offers an enhanced method for analyzing and predicting price movements on TradingView. The script combines Gaussian Weighted Moving Averages and polynomial regression to provide accurate and customizable forecasts.
Overview
Title: Gaussian Weighted Moving Average with Forecast
Author: chervolino
License: Mozilla Public License 2.0
Main Features
1. Gaussian Weighted Moving Average (GWMA):
- Calculates a weighted moving average using a Gaussian weighting function.
- Parameters for length and standard deviation allow fine-tuning of the smoothing effect.
2. Polynomial Regression with Forecast:
- Creates a model to predict future price movements.
- Adjustable length and degree of polynomial regression.
- Option to extrapolate predictions and visualize them.
3. Visual Representation:
- Uses lines and colors to depict trend changes.
- Customizable colors for upward and downward trends.
Input Parameters
Length: Length of the moving average (default: 50)
Standard Deviation: Standard deviation for Gaussian weighting (default: 10.0)
Width: Width of the plotted lines (default: 1)
Colors: Customizable colors for upward and downward trends
Forecast Length: Length of the forecast period (default: 20)
Extrapolate Length: Length of the extrapolation (default: 50)
Polynomial Degree: Degree of the polynomial regression (default: 3)
Lock Forecast: Option to lock and stabilize the forecast
Core Algorithms
1. Gaussian Weight Calculation:
gaussian_weight(x, std_dev) =>
1 / (std_dev * math.sqrt(2 * math.pi)) * math.exp(-0.5 * math.pow(x / std_dev, 2))
2. GWMA Calculation:
calculate_gwma(length, std_dev) =>
// Algorithm to calculate the weighted moving average
3. Initialize Lines for Polynomial Regression:
initialize_lines_array(extrapolate, length) =>
// Initialize array lines
4. Create Design Matrix for Polynomial Regression:
get_design_matrix(length, degree) =>
// Create the design matrix
5. Calculate and Plot Polynomial Regression:
calculate_polynomial_regression(src, length, degree, extrapolate, lines_arr, lock, width, upward_color, downward_color) =>
// Algorithm to calculate polynomial regression and plot the forecast
Combining Indicators: Originality and Usefulness
The combination of Gaussian Weighted Moving Average and polynomial regression provides traders with a robust tool for trend analysis and prediction. The GWMA smooths out price data while emphasizing recent prices, making it sensitive to short-term trends. Polynomial regression, on the other hand, offers a mathematical approach to model and forecast future prices based on historical data. By integrating these two methodologies, traders can achieve a more comprehensive view of market trends and potential future movements, making the tool highly valuable for decision-making.
Explanation for Users
Most TradingView users are not familiar with Pine Script, so a clear description is essential for understanding how to use the script.
Gaussian Weighted Moving Average (GWMA): This indicator calculates a moving average using Gaussian weights, which gives more importance to recent prices. The length and standard deviation parameters allow users to control the sensitivity and smoothness of the average.
Polynomial Regression with Forecast: This feature uses polynomial regression to model the price trend and predict future movements. Users can adjust the length of the historical data used, the degree of the polynomial, and the length of the forecast. The script plots these predictions, making it easier for traders to visualize potential future price paths.
Visualization of Results
1. GWMA Plotting:
plot(gaussian_ma_result, title="GWMA", color=line_color, linewidth=width_input)
2. Forecast Extrapolation:
plot(forecast_val, 'Extrapolation', offset=extrapolate_setting, linewidth=width_input, style=plot.style_circles)
Conclusion
The "Gaussian Weighted Moving Average with Forecast" script provides a powerful tool for analyzing and predicting price movements on TradingView. By combining Gaussian weighting and polynomial regression, it offers a precise and customizable method for trend analysis and forecasting.
Thank you for your attention! For any questions or further information, please feel free to reach out.
Multi-Timeframe Period Separator [CHE]Multi-Timeframe Period Separator
Introduction
- Purpose: This TradingView script is designed to help traders by automatically drawing period separators on the chart based on various timeframes.
- Benefits: Enhances chart readability, provides better visualization of time periods, and supports multiple timeframe types.
Features
1. Timeframe Selection:
- Auto Timeframe
- Multiplier
- Manual
2. Customization Options:
- Separator color
- Separator style
- Separator width
3. Display Options:
- Time period information box
- Customizable size and position of the info box
Code Breakdown
1. Timeframe Type Selection
- Options: Users can choose between "Auto Timeframe," "Multiplier," and "Manual." A multiplier can be set for the alternate resolution.
2. Resolution Calculation
- Automatic, Multiplier, and Manual Resolution Calculation: The resolution is calculated based on the selected timeframe type.
3. Automatic Timeframe Function
- Dynamic Timeframe Calculation: A function for automatically calculating the appropriate timeframe based on the current chart resolution.
4. Drawing the Separators
- Drawing Separators on the Chart: Separators are drawn based on the selected timeframe and the user's customization options.
5. Display of the Time Period
- Information Box Settings: Users can enable the display of an information box showing the current timeframe. The size, position, and colors of the box can be customized.
- Displaying the Time Period in the Information Box: If enabled, the information box shows the current time period.
Usage
1. Loading the Script: Add the script to your TradingView chart.
2. Setting Timeframe Type: Choose from Auto, Multiplier, or Manual.
3. Customizing Separators: Adjust the color, style, and width of the separators to your preference.
4. Displaying the Time Period: Enable the information box to show the current timeframe.
Conclusion
- Summary: This script provides a robust solution for traders who need clear visual separation of different time periods on their charts.
- Customization: Flexible options allow you to tailor the appearance and functionality to suit your trading style.
Supertrend + BB + Consecutive Candles + QQE + EMA [Pineify]Overview
This indicator, developed by Pineify, is a comprehensive tool designed to assist traders in making informed decisions by combining multiple technical analysis methods. It integrates Supertrend, Bollinger Bands (BB), Consecutive Candles, Quantitative Qualitative Estimation (QQE), and Exponential Moving Averages (EMA) into a single, cohesive script. This multi-faceted approach allows traders to analyze market trends, volatility, and potential buy/sell signals with greater accuracy.
Key Features
1. Supertrend: Utilizes the Supertrend indicator to identify the prevailing market trend. It provides clear buy and sell signals based on the direction of the trend.
2. Bollinger Bands (BB): Measures market volatility and identifies overbought or oversold conditions. The script calculates the middle, upper, and lower bands, along with the Bollinger Band Width (BBW) and Bollinger Band %B (BBR).
3. Consecutive Candles: Detects sequences of consecutive bullish or bearish candles, providing signals when a specified number of consecutive candles are detected.
4. Quantitative Qualitative Estimation (QQE): Combines the Relative Strength Index (RSI) with a smoothing factor to generate buy and sell signals based on the QQE methodology.
5. Exponential Moving Averages (EMA): Includes both fast and slow EMAs to identify potential crossovers, which are used as buy and sell signals.
How It Works
- Supertrend: The Supertrend indicator is calculated using a factor and ATR length. It plots the trend direction and generates buy/sell signals when the trend changes.
- Bollinger Bands: The BB indicator calculates the middle band as a Simple Moving Average (SMA) of the closing prices. The upper and lower bands are derived by adding and subtracting a multiple of the standard deviation from the middle band.
- Consecutive Candles: This feature counts the number of consecutive candles that close higher or lower than the previous candle. When the count reaches a specified threshold, it generates a buy or sell signal.
- QQE: The QQE indicator smooths the RSI values and calculates the QQE Fast and QQE Slow lines. Buy and sell signals are generated based on the crossover of these lines.
- EMA: The script calculates fast and slow EMAs and generates buy/sell signals based on their crossovers.
How to Use
1. Inputs: Customize the indicator settings through the input parameters:
- Supertrend Factor and ATR Length
- BB Length
- Consecutive Candles Counting
- QQE RSI Length
- Fast and Slow EMA Lengths
- Enable/Disable Alerts for various signals
2. Alerts: Set up alerts for Supertrend, Consecutive Candles, and EMA crossovers. Alerts can be enabled or disabled based on user preference.
3. Visualization: The indicator plots the Supertrend, Bollinger Bands, and EMA lines on the chart. It also marks buy and sell signals with arrows and labels for easy identification.
Concepts Underlying Calculations
- Supertrend: Based on the Average True Range (ATR) to determine the trend direction and potential reversal points.
- Bollinger Bands: Utilizes standard deviation to measure market volatility and identify overbought/oversold conditions.
- Consecutive Candles: A method to detect momentum by counting consecutive bullish or bearish candles.
- QQE: Enhances the traditional RSI by smoothing it and using a dynamic threshold to generate signals.
- EMA: A widely used moving average that gives more weight to recent prices, making it responsive to market changes.
This indicator is a powerful tool for traders looking to combine multiple technical analysis methods into a single, easy-to-use script. By integrating these diverse techniques, it provides a comprehensive view of market conditions and potential trading opportunities.
Open Interest liquidation map [Ox_kali]This script is inspired by @LeviathanCapital work on aggregating Open Interest , as presented in the Open Interest Suite Aggregated script. This script aims to provide a liquidation map of Open Interest by identifying significant anomalies across multiple trading platforms. By integrating data from Binance, BitMEX, and Kraken, this script tries to offer a comprehensive and detailed view of Open Interest movements and attempts to define zones of interest.
Key Points
1. Multiple Data Sources : The script retrieves Open Interest data from several trading platforms, including Binance (USDT, USD, BUSD), BitMEX (USD, USDT), and Kraken (USD).
2. Anomaly Detection : Utilizes a simple moving average (SMA) to calculate the average size of Open Interest candles and identify anomalies based on a user-specified size factor.
3. Background Coloring : Offers an option to color the background of the charts based on detected anomalies, allowing for clear visualization of significant movements.
4. Dynamic Support and Resistance Zones : Defines and dynamically updates support and resistance zones based on Open Interest anomalies.
5. Alerts : Configures alerts to notify the user when an Open Interest anomaly is detected.
Trading Utility
This script can be useful for monitoring significant changes in Open Interest and potential liquidation zones across multiple platforms. The main trading applications include:
1. Identifying Liquidation Points : By detecting Open Interest anomalies, it is possible to identify potential liquidation points where significant price movements might occur.
2. Multi-Platform Analysis : By aggregating Open Interest data from multiple platforms, a more comprehensive market overview is obtained.
3. Detecting Support and Resistance Zones : Dynamic support and resistance zones help identify key price levels where trend reversals might occur.
4. Customized Alerts: Anomaly alerts allow for automated responses to market changes.
Conclusion
The “Open Interest liquidation map ” script is an experimental tool for analyzing Open Interest across multiple trading platforms. Inspired by Leviathan’s work, this script attempts to identify liquidation and interest zones. This is an experimental version, and I welcome any comments and feedback for improvement.
Please note that the Open Interest liquidation map is not a guarantee of future market performance and should be used in conjunction with proper risk management. Always ensure that you have a thorough understanding of the indicator’s methodology and its limitations before making any investment decisions. Additionally, past performance is not indicative of future results.
PriceCatch Volume Analysis Fixed RangeHi TV Community.
It's been sometime since I published any script / utility. But today, I am back with a new script.
Volume Analysis
Studying volume when in trade or before taking one is very important as seasoned traders would tell you. So, this script helps you to look at volume over a specific interval from current bar. You will have to set the look-back period in the settings dialog.
The script will then show over that period :
Number of Up and Down bars
Volume Ratio of Up Volume over Down Volume
Actual Up and Down Volume
Percentage of Up Volume to Down Volume
I use this information in all my trades and hope that you will also find this Script useful.
To my knowledge, I have not seen another volume analysis script that helps see volume in the way this script does.
NOTE:
This script does not give any buy or sell signal if that is what you are looking for. But if you see that Up Volume is 3 times Down Volume, then that should mean something to you. So also when price is slipping down.
Disclaimer
I am sharing this Script without any warranties as to its usability. Use it only if you like it. As always when it comes to trading you and you alone are responsible for your actions.
All the best with your trades.
PriceCatch
Fractional Differentiation█ Description
This Pine Script indicator implements fractional differentiation, a mathematical operation that extends the concept of differentiation to non-integer orders. Fractional differentiation is particularly significant in financial analysis, as it enables analysts to uncover underlying patterns in price series that are not evident with traditional integer-order differentiation. The motivation behind fractional differencing lies in its ability to balance the trade-off between retaining data/feature memory and ensuring stationarity.
█ Significance
Fractional differentiation offers a nuanced view of market data, allowing for the adjustment of the differentiation order to balance between signal clarity and noise reduction. This is especially useful in financial markets, where the choice of differentiation order can highlight long-term trends or short-term price movements without completely smoothing out the valuable market noise.
█ Approximations Used
The implementation relies on the Gamma function for the computation of coefficients in the fractional differentiation formula. Given the complexity of the Gamma function, this script uses an approximation method based on the Lanczos approximation for the logarithm of the Gamma function, as detailed in "An Analysis Of The Lanczos Gamma Approximation" by Glendon Ralph Pugh (2004). This approximation strikes a balance between computational efficiency and accuracy, making it suitable for real-time market analysis in Pine Script.
█ Limitations
While this script opens new avenues for market analysis, it comes with inherent limitations:
- The approximation of the Gamma function, although accurate, is not exact. The precision of the fractional differentiation result may vary slightly, especially for higher-order differentiations.
- The script's performance is subject to Pine Script's execution environment, with a default loop limit set to 100 iterations for practicality. Users might need to adjust this limit based on their specific use case, balancing between computational load and the desired depth of historical data analysis.
█ Credits
This script makes use of the `MathSpecialFunctionsGamma` library, authored by Ricardo Santos . This library provides essential mathematical functions, including an approximation of the Gamma function, which is crucial for the fractional differentiation calculation.
I also extend my sincere gratitude to
Dr. Marcos López de Prado for his seminal work, Advances in Financial Machine Learning (2018). Dr. López de Prado's insights have significantly influenced our approach to developing sophisticated analytical tools.
Dr. Ernie Chan for his freely and generously sharing valuable insights via discourse on quantitative trading strategies through his talks and publications.
Liquidity SpotterIndicator Setup:
The script sets up a TradingView indicator titled "Liquidity Spotter" with a short title "PWWTC LS". It's designed to overlay on the price chart (overlay=true).
Input Variables:
The script defines input variables that allow users to customize the behavior of the indicator:
atr_length: Length of the Average True Range (ATR) used in calculations.
volume_multiplier: Multiplier used to compare the volume of the current bar with the average volume.
range_multiplier: Multiplier used to calculate the range condition.
highlight_color: Color used to highlight bars when conditions are met.
Calculations:
The script calculates the ATR and average volume using the ta.atr and ta.sma functions provided by TradingView's Pine Script.
It sets the avg_range to the value of the ATR, essentially making it the same as atr_value.
Conditions:
The script checks several conditions based on the calculated values:
range_condition: Compares the range (high - low) of the current bar with the average range multiplied by the range multiplier.
volume_condition: Compares the volume of the current bar with the average volume multiplied by the volume multiplier.
range_volume_condition: Compares the ratio of range to volume with the ratio of average range to average volume.
Plotting:
Based on the conditions being met or not, the script sets the color of the price bars. If all conditions are met, the color of the bars will be set to highlight_color, otherwise, it will remain unchanged (na).
Overall, this script visually highlights price bars on the chart where specific conditions related to range, volume, and their ratio are met, potentially indicating trading opportunities.
Daily Close GAP Detector [Yosiet]User Manual for "Daily Close GAP Detector "
Overview
This script is designed to help traders identify and react to significant gaps in daily market prices. It plots daily open and close prices and highlights significant gaps with a cross. The script is particularly useful for identifying potential breakouts or reversals based on these gaps.
Configuration
GAP Close Threshold: This input allows you to set a threshold for the gap size that you consider significant. The default value is 0.001.
Timeframe Seeker: This input lets you choose the timeframe for the gap detection. The default is 'D' for daily.
Features
Daily Open and Close Lines: The script plots daily open and close prices. If the close price is lower than the open price, the line is colored red; otherwise, it's green.
Gap Detection: It calculates the difference between the current day's close and the previous day's close, both adjusted for the selected timeframe. If this difference exceeds the threshold, it's considered a significant gap.
Significant Gap Indicator: A cross is plotted on the chart to indicate significant gaps. The color of the cross indicates whether the gap is a short or long gap: red for short gaps and green for long gaps.
Alert Conditions: The script sets up alert conditions for short and long gap breakouts. You can customize the alert messages to include details like the ticker symbol, interval, price, and exchange.
How to Use
Add the Script to Your Chart: Copy the script into the Pine Script editor on TradingView and add it to your chart.
Configure Inputs: Adjust the "GAP Close Threshold" and "Timeframe Seeker" inputs as needed.
Review the Chart: The script will overlay daily open and close prices on your chart, along with crosses indicating significant gaps.
Set Alerts: Use the script's alert conditions to set up alerts for short and long gap breakouts. You can customize the alert messages to suit your trading strategy.
Extending the Code
To extend this script, you can modify the gap detection logic, add more indicators, or integrate it with other scripts for a more comprehensive trading strategy. Remember to test any changes thoroughly before using them in live trading.
Bitcoin Momentum StrategyThis is a very simple long-only strategy I've used since December 2022 to manage my Bitcoin position.
I'm sharing it as an open-source script for other traders to learn from the code and adapt it to their liking if they find the system concept interesting.
General Overview
Always do your own research and backtesting - this script is not intended to be traded blindly (no script should be) and I've done limited testing on other markets beyond Ethereum and BTC, it's just a template to tweak and play with and make into one's own.
The results shown in the strategy tester are from Bitcoin's inception so as to get a large sample size of trades, and potential returns have diminished significantly as BTC has grown to become a mega cap asset, but the script includes a date filter for backtesting and it has still performed solidly in recent years (speaking from personal experience using it myself - DYOR with the date filter).
The main advantage of this system in my opinion is in limiting the max drawdown significantly versus buy & hodl. Theoretically much better returns can be made by just holding, but that's also a good way to lose 70%+ of your capital in the inevitable bear markets (also speaking from experience).
In saying all of that, the future is fundamentally unknowable and past results in no way guarantee future performance.
System Concept:
Capture as much Bitcoin upside volatility as possible while side-stepping downside volatility as quickly as possible.
The system uses a simple but clever momentum-style trailing stop technique I learned from one of my trading mentors who uses this approach on momentum/trend-following stock market systems.
Basically, the system "ratchets" up the stop-loss to be much tighter during high bearish volatility to protect open profits from downside moves, but loosens the stop loss during sustained bullish momentum to let the position ride.
It is invested most of the time, unless BTC is trading below its 20-week EMA in which case it stays in cash/USDT to avoid holding through bear markets. It only trades one position (no pyramiding) and does not trade short, but can easily be tweaked to do whatever you like if you know what you're doing in Pine.
Default parameters:
HTF: Weekly Chart
EMA: 20-Period
ATR: 5-period
Bar Lookback: 7
Entry Rule #1:
Bitcoin's current price must be trading above its higher-timeframe EMA (Weekly 20 EMA).
Entry Rule #2:
Bitcoin must not be in 'caution' condition (no large bearish volatility swings recently).
Enter at next bar's open if conditions are met and we are not already involved in a trade.
"Caution" Condition:
Defined as true if BTC's recent 7-bar swing high minus current bar's low is > 1.5x ATR, or Daily close < Daily 20-EMA.
Trailing Stop:
Stop is trailed 1 ATR from recent swing high, or 20% of ATR if in caution condition (ie. 0.2 ATR).
Exit on next bar open upon a close below stop loss.
I typically use a limit order to open & exit trades as close to the open price as possible to reduce slippage, but the strategy script uses market orders.
I've never had any issues getting filled on limit orders close to the market price with BTC on the Daily timeframe, but if the exchange has relatively low slippage I've found market orders work fine too without much impact on the results particularly since BTC has consistently remained above $20k and highly liquid.
Cost of Trading:
The script uses no leverage and a default total round-trip commission of 0.3% which is what I pay on my exchange based on their tier structure, but this can vary widely from exchange to exchange and higher commission fees will have a significantly negative impact on realized gains so make sure to always input the correct theoretical commission cost when backtesting any script.
Static slippage is difficult to estimate in the strategy tester given the wide range of prices & liquidity BTC has experienced over the years and it largely depends on position size, I set it to 150 points per buy or sell as BTC is currently very liquid on the exchange I trade and I use limit orders where possible to enter/exit positions as close as possible to the market's open price as it significantly limits my slippage.
But again, this can vary a lot from exchange to exchange (for better or worse) and if BTC volatility is high at the time of execution this can have a negative impact on slippage and therefore real performance, so make sure to adjust it according to your exchange's tendencies.
Tax considerations should also be made based on short-term trade frequency if crypto profits are treated as a CGT event in your region.
Summary:
A simple, but effective and fairly robust system that achieves the goals I set for it.
From my preliminary testing it appears it may also work on altcoins but it might need a bit of tweaking/loosening with the trailing stop distance as the default parameters are designed to work with Bitcoin which obviously behaves very differently to smaller cap assets.
Good luck out there!
Kzx | RSI + Div + MACDComponents Description:
Relative Strength Index (RSI):
Purpose: Measures the magnitude of recent price changes to evaluate overbought or oversold conditions in the price of a stock or other asset.
Implementation: The script allows users to set the length of the RSI calculation and defines overbought and oversold levels, which can be visually represented on the chart. Additional features include options to fill and/or color the background of the chart when overbought or oversold levels are reached.
Divergence (Div):
Purpose: Identifies instances where the price of an asset is moving in the opposite direction of a momentum indicator, such as the RSI in this script. Divergences can signal potential trend reversals.
Implementation: The script provides options for users to define the conditions under which divergences are identified, including the source of price tops/bottoms, detection limits, and the maximum lookback period for divergence analysis. It visually highlights these divergences on the chart.
Moving Average Convergence Divergence (MACD):
Purpose: Tracks the relationship between two moving averages of a security's price. The MACD is used to identify trend direction, momentum, and potential reversal points through crossovers.
Implementation: The script calculates the MACD line and its signal line. It plots buy or sell markers based on crossovers between these two lines, indicating potential entry or exit points.
Script Category:
Category: Technical Analysis / Indicators and Strategies
Subcategory: Oscillators (for RSI and MACD) and Trend Analysis (for Divergence)
Usage:
The script is designed for traders and analysts who rely on technical analysis to make informed decisions in the financial markets. By integrating RSI, divergence detection, and MACD analysis into a single script, users can gain a more nuanced understanding of market conditions, potentially improving their trading strategies.
Customization and Visualization:
Users can customize various parameters, including lengths for RSI and MACD, overbought/oversold levels, divergence detection criteria, and visual aspects like colors and marker sizes.
The script provides visual cues directly on the price chart, making it easy to spot potential buy/sell signals, overbought/oversold conditions, and divergences without the need to switch between different indicators.
BreakoutTrendFollowingINFO:
The "BreakoutTrendFollowing" indicator is a comprehensive trading system designed for trend-following in various market environments. It combines multiple technical indicators, including Moving Averages (MA), MACD, and RSI,
along with volume analysis and breakout detection from consolidation, to identify potential entry points in trending markets. This strategy is particularly effective for assets that exhibit strong trends and significant price movements.
Note that using the consolidation filter reduces the amount of entries the strategy detects significantly, and needs to be used if we want to have an increased confidence in the trend via breakout.
However, the strategy can be easily transformed to various only trend-following strategies, by applying different filters and configurations.
The indicator can be used to connect to the Signal input of the TTS (TempalteTradingStrategy) by jason5480 in order to backtest it, thus effectively turning it into a strategy (instructions below in TTS CONNECTIVITY section)
DETAILS:
The strategy's core is built upon several key components:
Moving Average (MA): Used to determine the general trend direction. The strategy checks if the price is above the selected MA type and length.
MACD Filter: Analyzes the relationship between two moving averages to confirm the trend's momentum.
Consolidation Detection: Identifies periods of price consolidation and triggers trades on breakouts from these ranges.
Volume Analysis: Assesses trading volume to confirm the strength and validity of the breakout.
RSI: Used to avoid overbought conditions, ensuring trades are entered in favorable market situations.
Wick filters: make sure there is not a long wick that indicates selling pressure from above
The strategy generates buy signals when several conditions are met concurrently (each one of them can be individually enabled/disabled)"
The price is above the selected MA.
A breakout occurs from a configurable consolidation range.
The MACD line is above the signal line, indicating bullish momentum.
The RSI is below the overbought threshold.
There's an increase in trading volume, confirming the breakout's strength.
Currently the strategy fires SL signals, as the approach is to check for loss of momentum - i.e. crossunder of the MACD line and signal line, but that is to everyone to determine the exit conditions.
The buy and SL signals are set on the chart using green or orange triangles on the below/above the price action.
SETTINGS:
Users can customize various parameters, including MA type and period, MACD settings, consolidation length, and volume increase percentage. The strategy is equipped with alert conditions for both entry (buy signals) and exit (set stop loss) points, facilitating both manual and automated trading.
Each one of the technical indicators, as well as the consilidation range and breakout/wick settings can be configured and enabled/disabled individually.
Please thoroughly review the available settings of the script, but here is an outline of the most important ones:
Use bar wicks (instead of open/close) - the ref_high/low will be taken based on the bar wicks, rather than the open/close when determining the breakout and MA
Enter position only on green candles - additional filters to make sure that we enter only on strong momentum
MA Filter: (enable, source, type, length) - general settings for MA filter to be checked against the stock price (close or upper wick)
MACD Filter: (enable, source, Osc MA type, Signal MA type, Fast MA length, Slow MA length, Low MACD Hist) - detailed settings for fine MACD tuning
Consolidation:
Consolidation Type: we have two different ways of detecting the consolidation, note the types below.
CONSOLIDATION_BASIC - consolidation areas by looking for the pivot point of a trend and counts the number of bars that have not broken the consolidation high/low levels.
CONSOLIDATIO_RANGE_PERCENT - identifies consolidation by comparing the range between the highest and lowest price points over a specified period.
So in summary the CONSOLIDATIO_RANGE_PERCENT uses a percentage-based range to define consolidation, while CONSOLIDATION_BASIC uses a count of bars within a high-low range to establish consolidation.
Thus the former is more focused on the tightness of the price range, whereas the latter emphasizes the duration of the consolidation phase.
The CONSOLIDATIO_RANGE_PERCENT might be more sensitive to recent price movements and suitable for shorter-term analysis, while CONSOLIDATION_BASIC could be better for identifying longer-term consolidation patterns.
Min consolidation length - applicable for CONSOLIDATION_BASIC case, the min number of bars for the price to be in the range to consider consolidation
Consolidation Loopback period - applicable for CONSOLIDATION_BASIC case, the loopback number of bars to look for consolidation
Consolidation Range percent - applicable for CONSOLIDATIO_RANGE_PERCENT, the percent between the high and low in the range to consider consolidation
Plot consolidation - enables plotting of the consolidation (only for debug purposes)
Breakout: (enable, low, high) - the definition of the breakout from the previous consolidation range, the price should be between to determine the breakout as successfull
Upper wick: (enable, percent) - defines the percent of the upper wick compared to the whole candle to allow breakout (if the wick is too big part of the candle we can consider entering the position riskier)
RSI: (enable, length, overbought) - general settings for RSI TA
Volume (enbale, percentage increase, average volume filter en, loopback bars) - percentage of increase of the volume to consider for a breakout. There are two modes - percentage increase compared to the previous bar, or percentage against the average volume for the last loopback bars.
Note that there are many different configuration that you can play with, and I believe this is the strength of the strategy, as it can provide a single solution for different cases and scenarios.
My advice is to try and play with the different options for different markets based on the approach you want to implement and try turning features on/off and tuning them further.
TTS SETTINGS (NEEDED IF USED TO BACKTEST WITH TTS):
The TempalteTradingStrategy is a strategy script developed in Pine by jason5480, which I recommend for quick turn-around of testing different ideas on a proven and tested framework
I cannot give enough credit to the developer for the efforts put in building of the infrastructure, so I advice everyone that wants to use it first to get familiar with the concept and by checking
by checking jason5480's profile www.tradingview.com
The TTS itself is extremely functional and have a lot of properties, so its functionality is beyond the scope of the current script -
Again, I strongly recommend to be thoroughly explored by everyone that plans on using it.
In the nutshell it is a script that can be feed with buy/sell signals from an external indicator script and based on many configuration options it can determine how to execute the trades.
The TTS has many settings that can be applied, so below I will cover only the ones that differ from the default ones, at least according to my testing - do your own research, you may find something even better :)
The current/latest version that I've been using as of writing and testing this script is TTSv48
Settings which differ from the default ones:
Deal Conditions Mode - External (take enter/exit conditions from an external script)
🔌Signal 🛈➡ - BreakoutTrendFollowing: 🔌Signal to TTS (this is the output from the indicator script, according to the TTS convention)
Order Type - STOP (perform stop order)
Distance Method - HHLL (HigherHighLowerLow - in order to set the SL according to the strategy definition from above)
The next are just personal preferences, you can feel free to experiment according to your trading style
Take Profit Targets - 0 (either 100% in or out, no incremental stepping in or out of positions)
Dist Mul|Len Long/Short- 10 (make sure that we don't close on profitable trades by any reason)
Quantity Method - EQUITY (personal backtesting preference is to consider each backtest as a separate portfolio, so determine the position size by 100% of the allocated equity size)
Equity % - 100 (note above)
PB wTF50What kind of traders/investors are we?
We are trend followers, always on the lookout for the next big move in the market. Our scripts are meticulously crafted for higher timeframes (daily, weekly, monthly) aiming to capture the large market trends.
What does this script do?
The Pb wTF50 script simplifies the complex world of investing by colour-coding bars to indicate the trend direction. Green bars signify a bullish trend, red indicates a bearish trend, and a combination of both signifies a sideways market. This visual representation ensures investors can quickly gauge the market's direction and act accordingly.
How is the PB wTF50 produced?
The PB wTF50 script employs the simple moving averages (SMAs) as its backbone. Bars positioned above both the SMAs turn green, indicating a bullish trend. Conversely, bars below these SMAs turn red, signalling a bearish trend.
What is the best timeframe to use the script?
The PB wTF50 script is designed for the weekly timeframe. This ensures that traders and investors are aligned with the long-term market trend, filtering out the noise of shorter timeframes.
What makes this script unique?
The challenges of identifying the onset, progression, and culmination of trends are well-known in the investing community. The PbF script addresses these challenges head-on.
The PB wTF50 is not a lagging indicator. It is aligned with price movement, which helps investors and traders focus on what the asset’s price is doing. The asset’s price is the primary indicator of its direction.
Lagging indicators can be used alongside the PB wTF50 to confirm the asset’s direction.
The PBwTF50 continues to remain green during extended periods of bullish pullbacks and red during extended periods of bearish pullbacks. This helps investors and traders hold positions during corrections in the market.
When interacting with OB/OS zones, investors and traders are positioned to align with the trend and ignore short-term fluctuations against the trend.
The PB wTF50 can be used to enter additional positions, also known as compounding, when an asset’s price has pulled back into an OS zone, but the trend filter has remained green in a bull trend/OB zone, but the trend filter has remained red in a bear trend.
In essence, the PB wTF50 script is a trend filter that gives investors and traders the ability to apply discretion with the start and end of long-term trends as they develop.
Dual_MACD_trendingINFO:
This indicator is useful for trending assets, as my preference is for low-frequency trading, thus using BTCUSD on 1D/1W chart
In the current implementation I find two possible use cases for the indicator:
- as a stand-alone indicator on the chart which can also fire alerts that can help to determine if we want to manually enter/exit trades based on the signals from it (1D/1W is good for non-automated trading)
- can be used to connect to the Signal input of the TTS (TempalteTradingStrategy) by jason5480 in order to backtest it, thus effectively turning it into a strategy (instructions below in TTS CONNECTIVITY section)
Trading period can be selected from the indicator itself to limit to more interesting periods.
Arrow indications are drawn on the chart to indicate the trading conditions met in the script - light green for HTF crossover, dark green for LTF crossover and orange for LTF crossunder.
Note that the indicator performs best in trending assets and markets, and it is advisable to use additional indicators to filter the trading conditions when market/asset is expected to move sideways.
DETAILS:
It uses a couple of MACD indicators - one from the current timeframe and one from a higher timeframe, as the crossover/crossunder cases of the MACD line and the signal line indicate the potential entry/exit points.
The strategy has the following flow:
- If the weekly MACD is positive (MACD line is over the signal line) we have a trading window.
- If we have a trading window, we buy when the daily macd line crosses AND closes above the signal line.
- If we are in a position, we await the daily MACD to cross AND close under the signal line, and only then place a stop loss under the wick of that closing candle.
The user can select both the higher (HTF) and lower (LTF) timeframes. Preferably the lower timeframe should be the one that the Chart is on for better visualization.
If one to decide to use the indicator as a strategy, it implements the following buy and sell criterias, which are feed to the TTS, but can be also manually managed via adding alerts from this indicator.
Since usually the LTF is preceeding the crossover compared to the HTF, then my interpretation of the strategy and flow that it follows is allowing two different ways to enter a trade:
- crossover (and bar close) of the macd over the signal line in the HIGH TIMEFRAME (no need to look at the LOWER TIMEFRMAE)
- crossover (and bar close) of the macd over the signal line in the LOW TIMEFRAME, as in this case we need to check also that the macd line is over the signal line for the HIGH TIMEFRAME as well (like a regime filter)
The exit of the trade is based on the lower timeframe MACD only, as we create a stop loss equal to the lower wick of the bar, once the macd line crosses below the signal line on that timeframe
SETTINGS:
All of the indicator's settings are for the vanilla/general case.
User can set all of the MACD parameters for both the higher and lower (current) timeframes, currently left to default of the MACD stand-alone indicator itself.
The start-end date is a time filter that can be extermely usefull when backtesting different time periods.
TTS SETTINGS (NEEDED IF USED TO BACKTEST WITH TTS)
The TempalteTradingStrategy is a strategy script developed in Pine by jason5480, which I recommend for quick turn-around of testing different ideas on a proven and tested framework
I cannot give enough credit to the developer for the efforts put in building of the infrastructure, so I advice everyone that wants to use it first to get familiar with the concept and by checking
by checking jason5480's profile www.tradingview.com
The TTS itself is extremely functional and have a lot of properties, so its functionality is beyond the scope of the current script -
Again, I strongly recommend to be thoroughly epxlored by everyone that plans on using it.
In the nutshell it is a script that can be feed with buy/sell signals from an external indicator script and based on many configuration options it can determine how to execute the trades.
The TTS has many settings that can be applied, so below I will cover only the ones that differ from the default ones, at least according to my testing - do your own research, you may find something even better :)
The current/latest version that I've been using as of writing and testing this script is TTSv48
Settings which differ from the default ones:
- from - False (time filter is from the indicator script itself)
- Deal Conditions Mode - External (take enter/exit conditions from an external script)
- 🔌Signal 🛈➡ - Dual_MACD: 🔌Signal to TTSv48 (this is the output from the indicator script, according to the TTS convention)
- Sat/Sun - true (for crypto, in order to trade 24/7)
- Order Type - STOP (perform stop order)
- Distance Method - HHLL (HigherHighLowerLow - in order to set the SL according to the strategy definition from above)
The next are just personal preferenes, you can feel free to experiment according to your trading style
- Take Profit Targets - 0 (either 100% in or out, no incremental stepping in or out of positions)
- Dist Mul|Len Long/Short- 10 (make sure that we don't close on profitable trades by any reason)
- Quantity Method - EQUITY (personal backtesting preference is to consider each backtest as a separate portfolio, so determine the position size by 100% of the allocated equity size)
- Equity % - 100 (note above)
EXAMPLES:
If used as a stand-alone indicator, the green arrows on the bottom will represent:
- light green - MACD line crossover signal line in the HTF
- darker green - MACD line crossover signal line in the LTF
- orange - MACD line crossunder signal line in the LTF
I recommend enabling the alerts from the script to cover those cases.
If used as an input to the TTS, we'll get more decorations on the chart from the TTS itself.
In the example below we open a trade on the next day of LTF crossover, then a few days later a crossunder in the LTF occurs, so we set a SL at the low of the wick of this day. Few days later the price doesn't recover and hits that SL, so the position is closed.